package com.jt.controller;

import com.jt.pojo.ItemCat;
import com.jt.service.ItemCatService;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author tang
 * @data 2021/9/3
 * @apiNode
 */
@RestController
@CrossOrigin
@RequestMapping("/itemCat")
public class ItemCatController {
    @Autowired
    private ItemCatService itemCatService;

    @GetMapping("/findItemCatList/{level}")
    public SysResult findItemCatList(@PathVariable Integer level){
        List<ItemCat> itemCatList = itemCatService.findItemCatList(level);
        return SysResult.success(itemCatList);
    }

    /**
     * 业务请求:修改状态
     * url: /itemCat/status/{id}/{status}
     * 请求方式:put
     * 参数:id/status
     * 返回值:SysResult
     */
    @PutMapping("/status/{id}/{status}")
    public SysResult updateItemCatStatus(ItemCat itemCat){
        itemCatService.updateItemCatStatus(itemCat);
        return SysResult.success();
    }

    /**
     * 业务请求:新增商品分类
     * url: /itemCat/saveItemCat
     * 请求方式:post
     * 参数:表单对象
     * 返回值:SysResult
     */
    @PostMapping("/saveItemCat")
    public SysResult saveItemCat(@RequestBody ItemCat itemCat){
        itemCatService.saveItemCat(itemCat);
        return SysResult.success();
    }

    /**
     * 业务:商品分类修改
     * url:/itemCat/updateItemCat
     * 请求类型:put
     * 参数:表单对象
     * 返回值:SysResult
     */
    @PutMapping("/updateItemCat")
    public SysResult updateItemCat(@RequestBody ItemCat itemCat){
        itemCatService.updateItemCat(itemCat);
        return SysResult.success();

    }

    /**
     * 商品业务:删除分类
     * url:/itemCat/deleteItemCat
     * 业务描述: 当删除节点为父级时,应该删除自身和所有的子节点
     * 参数:{id:itemCat.id,level:itemCat.level}
     * 请求类型:delete
     * 返回值:SysResult
     */
    @DeleteMapping("/deleteItemCat")
    public SysResult deleteItemCat(ItemCat itemCat){
        itemCatService.deleteItemCat(itemCat);
        return SysResult.success();
    }

}
